#ifndef LOG_IDECODER_H
#define LOG_IDECODER_H

#include <QtCore/QStringList>
#include <QtCore/QHash>
#include <QtCore/QVariant>

namespace log {

class LogIDecoder {
public:
  virtual bool decodeMessage(const QByteArray &data,
                             int &code_message,
                             QString &message) const = 0;

  virtual bool decodeParameters(const QByteArray &data,
                                int &code_message,
                                QHash<int, QVariant> &parameters) const = 0;

  virtual QHash<int, QString> getParameters(int code_message) const = 0;

  virtual QHash<int, QString> getParameters() const = 0;

  virtual QString getTemplate(int code_message) const = 0;

  virtual QHash<int, QString> getTemplates() const = 0;
};

} // namespace log

#endif // LOG_IDECODER_H
